﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace TurtleLib.Simulation
{
  public enum BlocKType
  {
    Dirt
  }

  public enum DragResult
  {
    Blocked,
    PushedAndBlocked,
    Pushed,
    Success
  }

  public enum Face
  {
    /// <summary>
    /// Error face
    /// </summary>
    Invalid = 0,

    /// <summary>
    /// Z positive
    /// </summary>
    North,

    /// <summary>
    /// Z negative
    /// </summary>
    South,

    /// <summary>
    /// X negative
    /// </summary>
    East,

    /// <summary>
    /// X positive
    /// </summary>
    West,

    /// <summary>
    /// Y positive
    /// </summary>
    Up,

    /// <summary>
    /// Y negative
    /// </summary>
    Down,
  }

  public enum BoundaryCheckResult
  {
    Good  = 0x0000,
    X_OUT = 0x0001,
    Y_OUT = 0x0010,

    X_NEG = 0x0002 | X_OUT,
    X_POS = 0x0004 | X_OUT,

    Y_NEG = 0x0020 | Y_OUT,
    Y_POS = 0x0040 | Y_OUT,

    POS   = (X_POS | Y_POS) ^ (X_OUT | Y_OUT),
    NEG   = (X_NEG | Y_NEG) ^ (X_OUT | Y_OUT),
    X_VALUE = (X_NEG | X_POS) ^ X_OUT,
    Y_VALUE = (Y_NEG | Y_POS) ^ Y_OUT,
  }
}
